package cn.tedu.ectends;

import org.junit.jupiter.api.Test;

public class TestExtendsDemo {
    @Test
    public void test1() {
        Animal animal = new Animal();
        Cat cat = new Cat();
        MiaoMiao miaoMiao = new MiaoMiao();
        animal.eat();
        cat.eat();
        miaoMiao.eat();
        /*3继承具有传递性，爷爷的功能会传给爸爸，爸爸的功能会传给孙子*/
    }

}

//创建爷爷类
class Animal {

    int a = 10;
    private int b = 100;

    public void eat() {
        System.out.println("小动物是什么东西吃什么都行");
    }
}

//2.创建爸爸类 建立继承关系
/*1.我们通过extends关键字建立子类与父类的关系   子类extends父类
 * 2.java只支持单继承，一个子类只能有一个父类，但一个子类只能有多个父类*/
class Cat extends Animal {
    public Cat() {

    }

    /*3子类可以拥有自己的独有的方法，实现功能的拓展，青出于蓝而胜于蓝
     * 4子类继承了父类之后相当于把父类的功能进行了复制*/
    public void studyjava() {
        System.out.println(a);
        /*5父类的私有资源子类不可用，原因是私有不可见*/
        /*6继承是一种is a的关系，比如小猫是小动物 叮当是猫
        * 7要求子类必须是父类的一种继承结构，依赖性非常强，强耦合*/
        // System.out.println(b);//子类不可以使用父类的私有资源
    }

}

//3.创建孙子类
class DingDang extends Cat {

}

class MiaoMiao extends Cat {
}
